A knowledge base contains encoded knowledge. In a rule-based expert system, the knowledge base typically incorporates definitions of facts and rules along with control information. An inference engine (sometimes referred to as a rule interpreter or rule engine) provides a reasoning mechanism in an expert system. In a rule based expert system, the inference engine typically implements forward chaining and backward chaining strategies. Forward chaining is a process of applying a set of previously determined rules to the facts in a knowledge base to see if any of them fire and thereby generate new facts. In essence, all derivable knowledge is derived in forward chaining. Backward chaining is goal-driven and used to process some queries against the knowledge base. A query is considered a goal and the knowledge base is searched for facts supporting that goal. Antecedents of such rules are made subgoals for further search if necessary. Inference engines designed for expert systems are increasingly used in business automation.